package com.swing.obj;

import java.awt.*;

/**
 * 提供了游戏对象的核心生命周期方法：更新逻辑与渲染画面
 */
public abstract class GameObject {
    
    /**
     * 该方法会在游戏循环的固定时间步长中被调用
     * 
     * @param deltaTime 两次更新之间的时间间隔（单位：秒）
     *                  用于基于时间的逻辑计算（如移动距离 = 速度 × deltaTime）
     */
    public void update(float deltaTime) {
        // 空实现，留给子类重写以实现具体逻辑
        // 例如：角色移动、AI决策、状态切换等
    }
    
    /**
     * 渲染游戏对象到屏幕上（如画布绘制、模型渲染等）
     * 该方法会在游戏循环的渲染阶段被调用，频率与帧率一致
     * @param g 画笔对象，用于绘制游戏对象
     */
    public void render(Graphics g) {
        // 空实现，留给子类重写以实现具体渲染逻辑
        // 例如：绘制精灵图片、3D模型、粒子效果等
    }
}